<?php
/**
 * Created by PhpStorm.
 * User: Administrator
 * Date: 2018/8/30 0030
 * Time: 14:53
 */

namespace app\admin\model;


use think\Model;

/**
 * 新闻类型
 * Class NewsTypes
 * @package app\admin\model
 */
class NewsTypes extends Model
{


    /**
     * 获取单条
     * @param $id
     * @return array|null|\PDOStatement|string|Model
     */
    public function _findOne($id){
        return $this->where(['id' => $id])->find();
    }


    /**
     *
     * @return array
     */
    /**
     * 获取列表-id、名称
     * @param bool $is_json: 是否需要json格式
     * @return array|\PDOStatement|string|\think\Collection
     */
    public function _get_types_list($is_json = false){
        $result = $this->field('id,t_name')
            ->order('sort asc')
            ->select();
        if(!$result){
            return [];
        }
        $result = $result->toArray();
        if($is_json){
            $result = json_encode($result, JSON_UNESCAPED_UNICODE);
        }
        return $result;
    }


    /**
     * 列表
     * @param $condition
     * @param int $page_size
     * @param string $order_by
     * @return \think\Paginator
     */
    public function _list($condition, $page_size = PAGE_SIZE_ADMIN, $order_by = 'sort asc'){
        $query['query'] = request()->param();
        $result = $this->where($condition)
            ->order($order_by)
            ->paginate($page_size, false, $query);
        return $result;
    }


    /**
     * 删除
     * @param $id
     * @return bool
     */
    public function _remove($id){
        $result = $this->_findOne($id);
        if(!$result){
            $this->error = '没有数据';
            return false;
        }
        if(!$result->delete()){
            $this->error = '操作失败';
            return false;
        }
        return true;
    }


    /**
     * 详情
     * @param $id
     * @return array|bool
     */
    public function _detail($id){
        $result = $this->_findOne($id);
        if(!$result){
            $this->error = '没有数据';
            return false;
        }
        return $result->toArray();
    }


    /**
     * 添加
     * @param $t_name
     * @param $sort
     * @return bool
     */
    public function _create($t_name, $sort){
        $this->t_name = $t_name;
        $this->sort = $sort;
        if(!$this->save()){
            $this->error = '添加失败';
            return false;
        }
        return true;
    }


    /**
     * 修改新闻类型
     * @param $id
     * @param $t_name
     * @param $sort
     * @return bool
     */
    public function _modify($id, $t_name, $sort){
        $result = $this->find($id);
        $result->t_name = $t_name;
        $result->sort = $sort;
        if(!$result->save()){
            $this->error = '修改新闻类型失败';
            return false;
        }
        return true;
    }


}